上一篇題到了函數宣告
這篇則來談談如何寫出可讀性高且好維護的函數的技巧
在 function 中的 return 關鍵字除了回傳結果以外,它同時還會有另外一個功能:
停止函數的執行,只要是在 return 後面的程式皆不會被執行
這是一個小技巧可以幫助提升程式碼的可讀性
當設計多條件判斷的邏輯時,讓程式碼盡早的完成任務並中止函數,節省不必要的運算,也避免過多的 if...else... 巢狀條件導致閱讀上的困難
function handleData(data) {
if (data.length == 0) {
return "Empty data" // Early return
}
// 當有資料的時候做整理後回傳結果
return result
}
是物件導向設計五原則 SOLID 中的一項,指的是每個函數應該只負責一項特定的任務,換句話說就是盡可能的保持「單純」,不要在一個函數中處理太多任務,這樣的設計能讓程式碼更容易維護和測試
以下列程式碼為例:
若是要改變密碼的驗證邏輯,只需針對 validatePassword 函數去做修改,其餘程式皆不需調整
// 驗證 Email
function validateEmail(email) {
// 略
}
// 驗證密碼
function validatePassword(password) {
// 略
}
// 註冊
function Register(user) {
if (!validateEmail(user.email)) {
// 略
}
if (!validatePassword(user.password)) {
// 略
}
}